﻿#ifndef MYVIDEO_H
#define MYVIDEO_H

#include <QQuickFramebufferObject>
#include <QImage>

/*!
    如何使用？
    内存图像数据直接连接 newData 槽函数即可在 qml 中显示该图像。

    如何在视频上绘制其他内容？
    可以在 qml 中的该元素实例添加子元素 文本啦 矩形框鸭 之类的。
*/

struct Context;
class MyVideo : public QQuickFramebufferObject
{
    Q_OBJECT
public:
    explicit MyVideo(QQuickItem *parent = nullptr);
    virtual QQuickFramebufferObject::Renderer *createRenderer() const override;
    QSharedPointer<Context> context();
signals:

public slots:
    // 从文件加载图像
    void newData(const QString &filename);
    // 从内存加载图像
    void newData(const QImage &image);
private:
    QSharedPointer<Context> m_ctx;
};

#endif // MYVIDEO_H
